package com.cloudkinto.bo.order.makeshop.getProduct;

import com.cloudkinto.annotate.GraphqlResultAttribute;
import lombok.Data;

import java.util.List;

/**
 * @author long
 * @Description 商品情報 検索結果の明細データ
 * @Date 2025/4/26 11:19
 */
@Data
public class SearchedProduct {

    /**
     * 商品UID
     */
    private Integer uid;
    /**
     * システム商品コード
     */
    private String systemCode;

    @GraphqlResultAttribute
    private String productName;
    /**
     * 商品グループコード
     */
    private String productGroupCode;
    /**
     * 商品グループ名
     */
    private String productGroupName;
    /**
     * 定価
     */
    private Integer consumerPrice;
    /**
     * 販売価格  销售价格
     */
    private Integer sellPrice;
    /**
     * 仕入価格  进货价格
     */
    private Integer buyPrice;
    /**
     * 販売価格の税率
     */
    private Integer taxRate;
    /**
     * 製造元
     */
    private String maker;
    /**
     * 原産地
     */
    private String madeIn;
    /**
     * 検索語
     */
    private String keyword;
    /**
     * 0: 品切れ
     * NULL: 無制限
     */
    @GraphqlResultAttribute
    private Integer quantity;
    /**
     * 重量
     */
    private Integer weight;
    /**
     * 拡大画像 maxImageUrlをご利用ください
     */
    @Deprecated
    private String maxImage;
    /**
     * 拡大画像URL
     */
    @GraphqlResultAttribute
    private String maxImageUrl;
    /**
     * 普通画像 minImageUrlをご利用ください
     */
    @Deprecated
    private String minImage;
    /**
     * 普通画像URL
     */
    @GraphqlResultAttribute
    private String minImageUrl;
    /**
     * 縮小画像 tinyImageUrlをご利用ください
     */
    @Deprecated
    private String tinyImage;
    /**
     * 縮小画像URL
     */
    @GraphqlResultAttribute
    private String tinyImageUrl;
    /**
     * モバイル画像
     */
    @Deprecated
    private String mobileImage;
    /**
     * モバイル画像URL
     */
    @Deprecated
    private String mobileImageUrl;
    /**
     * モバイルサムネイル画像
     */
    @Deprecated
    private String mobileTinyImage;
    /**
     * モバイルサムネイル画像URL
     */
    @Deprecated
    private String mobileTinyImageUrl;
    /**
     * 追加商品画像1
     */
    @Deprecated
    private String subImage1;
    /**
     * 追加商品画像1URL
     */
    @Deprecated
    private String subImage1Url;
    @Deprecated
    private String subImage2;
    @Deprecated
    private String subImage2Url;
    @Deprecated
    private String subImage3;
    @Deprecated
    private String subImage3Url;
    /**
     * サブ画像
     */
    private List<ProductSubImage> subImages;
    /**
     * モバイル用追加商品画像1を作成するフラグ
     * 0: 作成しない
     * 1: 作成する
     */
    private Integer subImageMbCk1;
    /**
     * モバイル用追加商品画像2を作成するフラグ
     */
    private Integer subImageMbCk2;
    /**
     * モバイル用追加商品画像3を作成するフラグ
     */
    private Integer subImageMbCk3;
    /**
     * 追加商品画像の表示パターン
     */
    private String imageLayout;
    /**
     * ギガプラス10に複数画像を登録しているかどうか
     * Y: 登録している
     * N: 登録していない
     */
    private String isGigaPlus;
    /**
     * ショップでの表示位置
     * 0: 無し
     * 1: 新商品
     * 2: スペシャル商品
     * 3: おすすめ商品
     * 4: カテゴリーのおすすめ商品
     * 5: GMOとくとくポイントヘッダー登録商品
     */
    @Deprecated
    private String displayPosition;
    @Deprecated
    private String summary;
    /**
     * 下記情報を | で連結して持つ
     * ICON=カンマ区切りのアイコン値,MINIQ=最小注文限度,MAXQ=最大注文限度,ORIGIN=原産地を表示するか否か,inventory_view=在庫数を表示するか否か
     */
    private String etcType;
    /**
     * 商品別特殊表示  按商品分类的特殊表示
     */
    @GraphqlResultAttribute
    private String addCode;
    /**
     * ポイント数
     */
    private Integer reserve;
    /**
     * ポイント設定
     * 1: ポイント値
     * 2: ポイント率
     */
    private Integer reserveType;
    /**
     * 商品の割引期間
     * 開始日YYYYMMDDHHMM形式｜終了日YYYYMMDDHHMM形式
     * 00000000: 商品割引を使用しない 99999999: 期間制限なし
     */
    private String discountPeriod;
    /**
     * 商品の割引率
     * 0: 使用しない
     */
    private String discountRate;
    @Deprecated
    private String deli;
    /**
     * 商品の登録日時（更新可能で、表示用などに利用）
     */
    private String customCreatedAt;
    /**
     * 商品の更新日時
     * (2024.05.17追加)
     * YYYY-MM-DD hh:mm:ss形式
     * ※新規商品登録時にも値を返却
     */
    private String updatedAt;
    /**
     * 商品の登録日時
     */
    private String createdAt;
    /**
     * 公開するか否か
     * N: 見せない
     * Y: 見せる
     */
    private String display;
    /**
     * 商品の独自コード
     */
    @GraphqlResultAttribute
    private String customCode;
    /**
     * 配送方法ID
     */
    private String deliveryMethodId;
    /**
     * PCでの説明文
     */
    private String pcContent;
    /**
     * PCでの追加説明
     */
    private String pcAddContent;
    /**
     * スマホでの説明文
     */
    private String mobileContent;
    /**
     * スマホでの追加説明
     */
    private String mobileAddContent;
    /**
     * 商品カテゴリーページ用商品説明文
     */
    private String categoryContent;
    /**
     * 商品カテゴリーページ用の商品説明文優先フラグ
     * N: 商品詳細内容（content）を表示する
     * Y: 商品カテゴリーページ用商品説明文を表示する
     */
    @Deprecated
    private String isListCategoryContent;
    /**
     * 追加商品画像説明文1
     */
    private String subContent1;
    private String subContent2;
    private String subContent3;
    /**
     * SEO設定
     * 以下の内容を｜で連結
     * <p>
     * ブラウザタイトル
     * メタタグKeyword
     * メタタグDescription
     * メタタグAuthor
     * ボディタグ直下メッセージ
     */
    private String seoContents;
    /**
     * GMOとくとくポイント付与率
     */
    @Deprecated
    private Float gmoPointMultiple;
    /**
     * D2C用商品名
     */
    @Deprecated
    private String d2CProductName;
    /**
     * Googleプロダクトサーチ用製品名
     */
    private String partnerProductName;
    /**
     * Googleプロダクトサーチ用ブランド名
     */
    private String partnerProduct;
    /**
     * Googleプロダクトサーチ用カテゴリ名
     */
    private String googleCategory;
    /**
     * Googleプロダクトサーチ用製品説明
     */
    private String partnerContent;
    /**
     * JANコード
     */
    @GraphqlResultAttribute
    private String janCode;
    /**
     * Googleショッピング情報：ISBN（国際標準図書番号）
     */
    private String isbn;
    /**
     * レコードナンバー（価格.comプラン専用）
     */
    @Deprecated
    private String recordNumber;
    /**
     * Googleショッピング情報：製品番号
     */
    private String mpn;
    /**
     * Googleショッピング情報：性別
     * 0未指定
     * 1男性
     * 2女性
     * 3ユニセックス
     */
    private Integer gender;
    /**
     * Googleショッピング情報：年齢層
     * 0 未指定
     * 1大人
     * 2子供
     * 3幼児(2024.08.05追加)
     * 4乳児(2024.08.05追加)
     * 5新生児(2024.08.05追加)
     */
    private Integer ageGroup;
    /**
     * Googleショッピング情報：商品グループ
     */
    private String skuGroup;
    /**
     * Googleショッピング情報：色
     */
    private String color;
    /**
     * Googleショッピング情報：サイズ
     */
    private String size;
    /**
     * Googleショッピング情報：素材
     */
    private String material;
    /**
     * Googleショッピング情報：柄
     */
    private String design;
    /**
     * Googleアドワーズ情報：アドワーズグループ
     */
    private String adwordsGroup;
    /**
     * Googleアドワーズ情報：表示ラベル
     */
    private String adwordsLabel;
    /**
     * メーカー発売日（価格.comプラン専用）
     */
    private String makerSaleDate;
    /**
     * 新品・中古品
     * <p>
     * new: 新品
     * used: 中古品
     * refurbished: 中古品を改修
     */
    private String condition;
    /**
     * 定期購入商品タイプ
     * <p>
     * 1: 通常商品
     * 2: 定期購入商品
     * 3: 通常商品と定期購入商品
     */
    private Integer repeatSaleType;
    /**
     * 予約商品設定
     * <p>
     * N: 予約商品にしない
     * Y: 予約商品にする
     */
    private String isReservationSale;
    /**
     * 予約商品を発売後に通常商品にする設定
     * <p>
     * N: しない
     * Y: する
     */
    private String isRegularAfterSold;
    /**
     * 発売日
     */
    private String reservationSaleDate;
    /**
     * 発売日備考
     */
    private String reservationSaleDateNote;
    /**
     * 出荷予定日
     */
    private String arrivalDate;
    /**
     * 予約商品備考
     */
    private String reservationSaleNote;
    /**
     * 掲載期間の開始日時設定
     * <p>
     * Y: 設定する
     * N: 設定しない
     */
    private String isSellStart;
    /**
     * 掲載期間の終了日時設定
     * <p>
     * Y: 設定する
     * N: 設定しない
     */
    private String isSellEnd;
    /**
     * 掲載期間外の表示可否
     * <p>
     * Y: 表示
     * N: 非表示
     */
    private String isDisplayOutOfSellPeriod;
    /**
     * 検索用に変換した商品名
     */
    @Deprecated
    private String searchProductName;
    /**
     * 検索用に変換した検索語
     */
    @Deprecated
    private String searchKeyword;
    /**
     * 検索用に変換した商品の独自コード
     */
    @Deprecated
    private String searchCustomCode;
    /**
     * 検索用に変換した製造元
     */
    @Deprecated
    private String searchMaker;
    /**
     * 検索用に変換した商品詳細内容
     */
    @Deprecated
    private String searchContent;
    /**
     * 掲載開始日時
     */
    private String sellStartDateTime;
    /**
     * 掲載終了日時
     */
    private String sellEndDateTime;
    /**
     * 決済時備考
     */
    private String orderMessage;
    /**
     * 再入荷お知らせメール受付設定
     */
    private String isRestockMail;
    /**
     * 会員用商品の設定
     * <p>
     * Y: 会員のみ閲覧できる
     * N: 会員・非会員問わず閲覧できる
     */
    private String isMemberOnly;
    /**
     * dmp用カテゴリーID登録
     */
    @Deprecated
    private String dmpCategoryUid;
    /**
     * 名入れグループ情報
     */
    private InsertNameGroup insertNameGroup;
    /**
     * カタログコード  目录代码
     */
    private String catalogCode;
    /**
     * オプション情報
     */
    private String option;
    /**
     * バリエーションの表示方法
     * <p>
     * 1: 表形式
     * 2: プルダウン
     * 3: SKUレイアウト
     */
    private Integer variationShowType;
    /**
     * バリエーション1の初期表示ID
     */
    private Integer variation1Default;
    /**
     * バリエーション2の初期表示ID
     */
    private Integer variation2Default;
    /**
     * バリエーション情報
     */
    private List<Variation> variations;
    /**
     * 基本カテゴリ情報
     */
    @GraphqlResultAttribute
    private List<Category> categories;
    /**
     * 商品カテゴリ情報
     */
    @GraphqlResultAttribute
    private List<Category> productCategories;
    /**
     * 会員グループ別価格
     * (2024.09.11追加)
     * ※BtoBオプション機能のご契約ショップ様が対象。
     */
    private List<MemberGroupPriceForSearch> memberGroupPrices;
}